3.5 Positional Encoding
Since our model contains no recurrence and no convolution, in order for the model to make use of the order of the sequence, we must inject some information about the relative or absolute position of the tokens in the sequence.
「モデルはrecurrenceもconvolutionも含まないので、モデルが系列の順序を活用するために、系列中のトークンの相対的または絶対的な位置に関するいくらかの情報を注入しなければならない」
To this end, we add "positional encodings" to the input embeddings at the bottoms of the encoder and decoder stacks.
「この目的のために、encoderとdecoderのスタックの一番下にある入力の埋め込みに"positional encoding"を追加する」
positional encodingは埋め込みと同じd_model次元
we use sine and cosine functions of different frequencies
「posは位置で、iは次元」
(iに関して偶数次と奇数次)
sinusoid=正弦曲線
We chose this function because we hypothesized it would allow the model to easily learn to attend by relative positions, since for any fixed offset k, PE_pos+k can be represented as a linear function of PE_pos.
「任意の固定されたオフセットkについてPE_pos+kはPE_posの線形関数として表現できるため、この関数によりモデルが相対位置によって簡単に学習できるという仮説を立てたために選んだ」
(sin, cosならk先の位置を線形で表現できそう。加法公式?)
We chose the sinusoidal version because it may allow the model to extrapolate to sequence lengths longer than the ones encountered during training.
「正弦曲線バージョンはモデルが訓練の間に出逢った系列よりも長い長さの系列へ外挿できるかもしれないので選択した」